package com.xydtech.ecard.user.service;

import com.xydtech.common.core.domain.entity.SysDictData;
import com.xydtech.ecard.user.domain.EcardApiAdeptPrdtype;
import com.xydtech.ecard.user.domain.EcardApiEcardRegistInfo;
import com.xydtech.ecard.user.domain.EcardApiHotPrd;

import java.util.List;
import java.util.Map;

/**
 * 电子名片用户注册Service接口
 * 
 * @author Daniel
 * @date 2021-08-30
 */
public interface IEcardApiEcardRegistInfoService 
{
    /**
     * 根据registId查询用户注册信息
     * @param registId
     * @return
     */
    EcardApiEcardRegistInfo selectEcardApiEcardRegistInfoByRegistId(Long registId, String salt);

    /**
     * 根据openId获取注册用户信息
     * @param openId
     * @return
     */
    EcardApiEcardRegistInfo selectEcardApiEcardRegistInfoByOpenId(String openId, String salt);

    /**
     * 根据员工编号获取注册用户信息
     * @param userCode
     * @return
     */
    EcardApiEcardRegistInfo selectEcardApiEcardRegistInfoByUserCode(String userCode, String salt);

    /**
     * 新增电子名片用户注册
     *
     * @param ecardApiEcardRegistInfo 电子名片用户注册
     * @return 结果
     */
    int insertEcardApiEcardRegistInfo(EcardApiEcardRegistInfo ecardApiEcardRegistInfo, String salt);

    /**
     * 更新头像信息
     * @param userId
     * @param avatarFilePath
     * @return
     */
    void updateAvatar(String userId, String avatarFilePath);

    /**
     * 更新微信二维码
     * @param userId
     * @param wechatQrcodeFilePath
     * @return
     */
    int updateWechatQrcode(String userId, String wechatQrcodeFilePath);

    /**
     * 电子名片-创建工作室-信息完善
     * @param ecardRegistInfo
     * @return
     */
    int updateUserInfo(EcardApiEcardRegistInfo ecardRegistInfo, String salt);

    /**
     * 根据法人机构查询对应的产品类表
     * @param parentDeptId
     * @return
     */
    List<SysDictData> getPrdType(Long parentDeptId);

    /**
     * 电子名片-创建工作室-保存擅长业务和优选产品
     * @param prdTypes
     * @param prdIds
     */
    void saveAdeptPrdTypeAndHotPrd(String currentUserId, String prdTypes, String prdIds, Long deptId);

    /**
     * 获取客户经理的擅长领域
     * @param userId
     * @return
     */
    List<EcardApiAdeptPrdtype> getAdeptPrdTypeList(String userId);

    /**
     * 获取客户经理的热门产品
     * @param userId
     * @return
     */
    List<EcardApiHotPrd> getHotPrdList(String userId);

    /**
     * 电子名片-创建工作室-获取头像和微信二维码路径
     * @param userId
     * @return
     */
    Map<String,Object> getAvatarAndWechatQrcode(String userId);

    /**
     * 电子名片-注册信息-完善用户信息
     * @param userId
     * @param nickName
     * @param avatarUrl
     * @return
     */
    int completeUserInfo(String userId, String nickName, String avatarUrl);
    /**
     * 客户经理用户注销时使用
     *
     * @author yjs
     * @date 2022/11/11 14:34
     */
    int logoffManagerUser(String registId);

    /**
     * 更新注册表员工号
     * @param ecardRegistInfo
     * @param salt
     * @return
     */
    int updateUserCode(EcardApiEcardRegistInfo ecardRegistInfo, String salt);
}
